// 版权归 Epic Games, Inc. 所有。保留所有权利。

#pragma once

#include "Input/CommonBoundActionButton.h"

#include "LyraBoundActionButton.generated.h"

#define UE_API LYRAGAME_API

class UCommonButtonStyle;
class UObject;

/**
 * Lyra 绑定动作按钮类
 */
UCLASS(MinimalAPI, Abstract, meta = (DisableNativeTick))
class ULyraBoundActionButton : public UCommonBoundActionButton
{
	GENERATED_BODY()
	
protected:
	/**
	 * 原生构造函数
	 */
	UE_API virtual void NativeConstruct() override;

private:
	/**
	 * 处理输入方法改变事件
	 * @param NewInputMethod 新的输入方法
	 */
	void HandleInputMethodChanged(ECommonInputType NewInputMethod);

	UPROPERTY(EditAnywhere, Category = "Styles")
	TSubclassOf<UCommonButtonStyle> KeyboardStyle; // 键盘样式

	UPROPERTY(EditAnywhere, Category = "Styles")
	TSubclassOf<UCommonButtonStyle> GamepadStyle; // 游戏手柄样式

	UPROPERTY(EditAnywhere, Category = "Styles")
	TSubclassOf<UCommonButtonStyle> TouchStyle; // 触摸样式
};

#undef UE_API